Typically, virtual machines (VMs), such as Java virtual machines (JVMs) tend to be self-contained, and tend to be independent of other VMs such that they not rely on other VMs. However, as web application server farms continue to grow, dependencies may appear among the VMs within an enterprise. Because of such dependencies, specific VM start orders must be adhered to or problems, such as outages, may occur. Additionally, these dependencies may need to be taken into account when VMs may be re-booted, e.g., to correct an issue or to pick up an additional configuration parameter. When a VM re-boot occurs, one or more dependent VMs may also need to be re-booted to ensure proper functionality.
Additionally, some VMs may not start under load. For example, a request may not be made to a VM as it may be initializing. Furthermore, there are some VMs that should not be started. Such VMs may include those that may not be ready to be used yet, and those that may not be ready to go to production yet. Unfortunately, a user may not easily manage VMs, VM dependencies, and actions that may be performed on VMs.